const UserDao = require('../dao/userDao');
const ShareListDao = require('../dao/shareListDao');
const WeChatAction = require('./weChatAction');
exports.eventHandle = function (message, req, res, next) {
    console.log("=event=", message);
    switch (message.Event) {
        case 'subscribe':
            handleSubScribe(message, req, res);
            weChatApi.sendText(message.FromUserName,
                // '\ue329 欢迎关注并使用婚恋助手。\n' +
                '不止单身，已恋已婚也能使用的情感工具。\n' +
                '*** 使用步骤 ***\n' +
                '1. 【我的】> {个人资料} 可更改昵称及头像以区别于微信，个人资料越完整，得到高匹配度的人越多。\n' +
                '2. 【匹配】匹配结果列表中加ta为好友。\n' +
                '3. 【匹配】> {好友列表} 可查看好友通过情况，选择好友在公众号里直接聊天，可删除或拉黑他人。\n' +
                '4. 【聊聊】最近的聊天列表及新通过好友。\n',
                function (err, result) {
                    console.log('======subscribe error======', err)
                    console.log('======subscribe result======', result)
                });
            // WeChatAction.getQRCodeImg({ openid: message.FromUserName });
            res.send('success');
            break;
        case 'unsubscribe':
            handleUnSubScribe(message, req, res);
            break;
        case 'SCAN':
            // WeChatAction.getQRCodeImg({ openid: message.FromUserName });
            res.send('success');
            break;
        case 'CLICK':
            res.reply({
                type: "image",
                content: {
                    mediaId: '_sTFKfESez8jxdB9hocz4JL2zWXwCirwTYXlndCBPF4'
                }
            });
            res.reply(message.EventKey);
            break;
        default:
            console.log('=default=');
            res.send('success');
            // res.send('<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[SUCCESS]]></return_msg></xml>');
    }
};
function handleUnSubScribe(params, req, res) {
    ShareListDao.deleteShare(masterPool, {openid: params.FromUserName})
        .then(function (result) {
            console.log(result);
            res.send('<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[SUCCESS]]></return_msg></xml>');
        }, function (err) {
            console.log(err);
            res.send('<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[已存在用户]]></return_msg></xml>');
        });
}
function handleSubScribe(params, req, res) {
    console.log('======== handleSubScribe params ==========', params)
    let userInfo = {}
    UserDao.queryUser(masterPool, {openid: params.FromUserName})
        .then(function (result) {
            if (result.length > 0)
                throw '已存在用户';
            return ShareListDao.queryShare(masterPool,{openid: params.FromUserName});
        })
        .then(function (result) {
            if (result.length > 0)
                throw '已存扫过';
            weChatApi.getUser(params.FromUserName, function (err, result) {
                console.log('===========getUser err==========', err)
                console.log('===========getUser result==========', result)
                userInfo = result
                ShareListDao.queryShareByShareId(masterPool, {ShareOpenId: params.EventKey.replace('qrscene_', '')}).then(function (result) {
                    weChatApi.sendText(params.EventKey.replace('qrscene_', ''), '助力提醒 ：\n' +
                        '【' + userInfo.nickname + '】已成功关注，已经有' + result.length + '个好友帮你助力。分享下图到朋友圈，满32个人扫码关注，请在公众号里直接文字联系我们，获取VIP激活码。',
                        function (err, result) {
                            console.log('======sendText error======', err)
                            console.log('======sendText result======', result)
                        });
                })
            });
        })
        .then(function () {
            return ShareListDao.createShare(masterPool, {openid: params.FromUserName, ShareOpenId: params.EventKey.replace('qrscene_', '')})
        })
        .then(function (result) {
            console.log(result);
            res.send('<xml><return_code><![CDATA[SUCCESS]]></return_code><return_msg><![CDATA[SUCCESS]]></return_msg></xml>');
        }, function (err) {
            console.log(err);
            res.send('<xml><return_code><![CDATA[FAIL]]></return_code><return_msg><![CDATA[已存在用户]]></return_msg></xml>');
        });
}
